/**
 * 
 * 起迪科技 Copyright (c) 2014-2018 QiDi,Inc.All Rights Reserved.
 */
package cn.qidisoft.edu.hzjt.service;

import java.util.List;

import cn.qidisoft.core.common.pagination.Page;
import cn.qidisoft.core.common.pagination.PaginationBean;
import cn.qidisoft.edu.hzjt.model.Grade;
import cn.qidisoft.edu.hzjt.model.RecommendStudent;
import cn.qidisoft.edu.hzjt.model.Semester;
import cn.qidisoft.edu.hzjt.model.Student;

/**
 * 
 * @author hxq
 * @version $Id: IRecommendStudentService.java, v 0.1 2018年11月1日 上午10:11:31 hxq Exp $
 */
public interface IRecommendStudentService {
  /**
   * 获得学生推荐列表信息
   * 
   * @param recommendStudent
   * @param page
   * @return
   */
  public PaginationBean<RecommendStudent> queryRecommendStudentPageList(
      RecommendStudent recommendStudent, Page page);

  /**
   * 新增学生推荐表信息
   * 
   * @param recommendStudent
   * @return
   */

  public int addRecommendStudent(RecommendStudent recommendStudent);

  /**
   * 通过gid获得学生推荐表信息
   * 
   * @param gid
   * @return
   */

  public RecommendStudent queryGidRecommendStudent(String gid);

  /**
   * 通过id获得学生推荐表信息
   * 
   * @param tjid
   * @return
   */

  public RecommendStudent queryRecommendStudent(Integer tjid);

  /**
   * 修改学生推荐表信息
   * 
   * @param recommendStudent
   * @return
   */

  public int modiftyRecommendStudent(RecommendStudent recommendStudent);

  /**
   * 删除学生推荐表信息
   * 
   * @param ids
   * @return
   */

  public int removeRecommendStudent(String[] ids);

  /**
   * 获得推荐表的学生人数
   * 
   * @param recommendStudent
   * @return
   */

  int queryRecommendStudentClassCount(RecommendStudent recommendStudent);

  /**
   * 获得推荐表学期信息
   * 
   * @return
   */

  List<Semester> queryRecommendStudentAllTerm();

  /**
   * 按照班级汇总推荐表信息
   * 
   * @param student
   * @return
   */

  List<RecommendStudent> queryRecommendStudentClassReport(Student student);

  /**
   * 按照全校汇总推荐表信息
   * 
   * @param student
   * @return
   */
  List<RecommendStudent> queryRecommendStudentSchoolReport(Student student);

  /**
   * 通过推荐表信息获得年级信息
   * 
   * @return
   */
  List<Grade> queryRecommendStudentAllGrade(Grade grade);

  /**
   * 导出学生推荐信息
   * 
   * @param recommendStudent
   * @return
   */

  List<RecommendStudent> exportRecommendStudentList(RecommendStudent recommendStudent);
}
